package com.jieao.template.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpHeaders;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * 跨域配置
 *
 * @author Jzw
 * @className CorsConfig
 * @since 2020-03-31 10:16
 */
@Configuration
public class CorsConfig
{
    @Bean
    public WebMvcConfigurer corsConfigurer()
    {
        return new WebMvcConfigurer()
        {
            @Override
            public void addCorsMappings(CorsRegistry registry)
            {
                registry.addMapping("/**").
                        //允许跨域的域名，可以用*表示允许任何域名使用
                                allowedOrigins("*").
                        //允许任何方法（post、get等）
                                allowedMethods("GET", "HEAD", "PATCH", "POST", "PUT", "DELETE", "OPTIONS").
                        //允许任何请求头
                                allowedHeaders("*").
                        //带上cookie信息
                                allowCredentials(true).
                        //暴露哪些头部信息到response中（因为跨域访问默认不能获取全部头部信息）
                                exposedHeaders(HttpHeaders.SET_COOKIE).
                        //maxAge(3600)表明在3600秒内，不需要再发送预检验请求，可以缓存该结果
                                maxAge(3600L);
            }
        };
    }
}
